package cn.sccdlg.ssm.service;

import cn.sccdlg.ssm.domain.Role;
import cn.sccdlg.ssm.domain.UserInfo;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

/**
 * @author RaoShuang
 * @emil 991207823@qq.com
 * @date 2020/10/27 22:28
 * 用户业务层接口
 */
public interface UserService extends UserDetailsService {

    /**
     * 查询所有用户
     */
    List<UserInfo> findAll() throws Exception;

    /**
     * 保存用户
     * @param userInfo 用户信息
     */
    void save(UserInfo userInfo) throws Exception;

    /**
     * 根据用户id查询用户
     * @param id 用户id
     */
    UserInfo findById(String id) throws Exception;

    /**
     * 根据用户id查询用户不具备的其他角色
     * @param userId 用户id
     * @return
     * @throws Exception
     */
    List<Role> findOtherRoles(String userId) throws Exception;

    /**
     * 保存用户与角色关联信息
     * @param userId 用户id
     * @param roleIds 角色id列表
     */
    void addRoleToUser(String userId, String[] roleIds);
}
